package net.towee.model.group;

import java.util.Date;

import net.towee.model.ProfileContainer;

/**
 * This profile of group contain some extended information about group
 * @author c58
 */
public interface GroupProfile extends ProfileContainer {
	/**
	 * @return identity of group
	 */
	GroupIdentity getIdentity();
	
	/**
	 * @return date of creation a group
	 */
	Date getCreationDate();

	/**
	 * @return number of users in group
	 */
	int getNumberOfUsers();
	
	/**
	 * Increment number of users
	 */
	void incrementUsers();
	
	/**
	 * @return openness of group
	 */
	GroupOpenness getOpenness();
	
	/**
	 * Set new group openness
	 * @param openness
	 */
	void setOpenness(GroupOpenness openness);
	
	/*
	 * Getters
	 */
	String getHomeUrl();
	String getDescription();
	
	/*
	 * Setters
	 */
	void setHomeUrl(String url);
	void setDescription(String desc);

	/**
	 * @return id of group
	 */
	String getId();

	/**
	 * Set id o profile
	 * @param string
	 */
	void setId(String string);
}
